package com.feizi.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.feizi.entity.ProductType;
import com.feizi.service.ProductTypeService;
import com.feizi.util.ResponeMessageUtil;

@Controller
@RequestMapping("/back/")
public class ProductTypeController {
	
	@Autowired
	private ProductTypeService productTypeService;
	
	
	/**
	 * 查询出所有的商品类型并JSON返回页面
	 * @return
	 */
	@RequestMapping("/queryAllProductType.do")
	@ResponseBody
	public ResponeMessageUtil queryAllProductType( String name,String p_id) {
		return ResponeMessageUtil.ok(productTypeService.queryProductTypeCounts(name,p_id), productTypeService.queryAllProductType(null,null,name,p_id));
	}
	
	/**
	 * 查询出顶级分类的数据信息
	 * @return
	 */
	@RequestMapping("/queryTwoEvlProductType.do")
	@ResponseBody
	public List<ProductType> queryTwoEvlProductType() {
		return productTypeService.queryTwoEvlProductType();
	}
	
	/**
	 * 添加商品的类型
	 * @param productType
	 * @return
	 */
	@RequestMapping("/addProductType.do")
	@ResponseBody
	public Boolean addProductType(ProductType productType) {
		return productTypeService.addProductType(productType);
	}
	
	/**
	 * 编辑商品类型的信息
	 * @param productType
	 * @return
	 */
	@RequestMapping("/editProductTypeById.do")
	@ResponseBody
	public Boolean editProductTypeById(ProductType productType) {
		return productTypeService.editProductTypeById(productType);
	}
	
	/**
	 * 批量删除商品的类型
	 * @param ids
	 * @return
	 */
	@RequestMapping("/delAllProductTypeByIds.do")
	@ResponseBody
	public Boolean delAllProductTypeByIds(@RequestParam("ids") String ids) {
		return productTypeService.delAllProductTypeByIds(ids);
	}
	
	/**
	 * 单个的删除商品的类型
	 * @param id
	 * @return
	 */
	@RequestMapping("/delProductTypeById.do")
	@ResponseBody
	public Boolean delProductTypeById(Integer id) {
		return productTypeService.delProductTypeById(id);
	}
	
	/**
	 * 查询数据库的商品类型名称与商品类型页面输入的名称来判断是否唯一
	 * @param typeName
	 * @return
	 */
	@RequestMapping("/queryAllProductTypeNameWitchVerify.do")
	@ResponseBody
	public Boolean queryAllProductTypeNameWitchVerify(String typeName) {
		return productTypeService.queryAllProductTypeNameWitchVerify(typeName);
	}
	
	/**
	 * 查询出所有的商品用于展示到商品类型页面编辑操作的下拉框内
	 * @return
	 */
	@RequestMapping("/queryProductTypeNameAndIdWitchSelect.do")
	@ResponseBody
	public List<ProductType> queryProductTypeNameAndIdWitchSelect(){
		return productTypeService.queryProductTypeName();
	}
	
	/**
	 * 在商品类型列表删除功能前来执行查询一下该商品类型下面是否有商品如有商品就不能删除
	 * @param id
	 * @return
	 */
	@RequestMapping("/queryProductTypeBelowIsProductById.do")
	@ResponseBody
	public Boolean queryProductTypeBelowIsProductById(Integer id) {
		return productTypeService.queryProductTypeBelowIsProductById(id);
	}
	
	/**
	 * 当进行商品类型删除之前先进行查看当前的商品类型是否有子类型链接，如有就会返回true不让直接的删除
	 * @param id
	 * @return
	 */
	@RequestMapping("/queryProductTypeBelowIsSonProductTypeByP_id.do")
	@ResponseBody
	public Boolean queryProductTypeBelowIsSonProductTypeByP_id(Integer id) {
		return productTypeService.queryProductTypeBelowIsSonProductTypeByP_id(id);
	}
	
}
